#include<string>
#include<deque>
#include<stack>
#include<queue>
#include <vector>

using namespace std;
#include "queue.h"
#include "Stack.h"
class Solution {
public:
    int evalRPN(vector<string>& tokens) {
        //hsl::stack<int, vector<int>> st;
        hsl::stack<int,list<int>> st;
        for (auto& str : tokens)
        {
            if (str == "+" || str == "-" || str == "*" || str == "/")
            {
                int right = st.top();
                st.pop();
                int left = st.top();
                st.pop();
                switch (str[0])
                {
                case '+':
                    st.push(left + right);
                    break;
                case '-':
                    st.push(left - right);
                    break;
                case '*':
                    st.push(left * right);
                    break;
                case '/':
                    st.push(left / right);
                    break;
                }
            }
            else
            {
                st.push(stoi(str));
            }
        }
        return st.top();
    }

};


void test_queue()
{
    hsl::queue<int,list<int>> q;
    q.push(1);
    q.push(2);
    q.push(3);
    q.push(4);
    q.push(5);
    while (!q.empty())
    {
        cout << q.front() << " ";
        q.pop();
    }
}

int main()
{
    //vector<string> v = { "4","13","5","/","+" };
    //Solution s1;
    //cout << s1.evalRPN(v) << endl;
    test_queue();
    return 0;
}